#include<iostream>
#include<algorithm>

using namespace std;

struct Stu {
	string name;
	int id;
	int year;
	int month;
	int day;
};

bool comp(struct Stu s1, struct Stu s2) {
	if (s1.year != s2.year)
		return s1.year < s2.year;
	else if (s1.month != s2.month)
		return s1.month < s2.month;
	else if (s1.day != s2.day)
		return s1.day < s2.day;
	else
		return s1.id > s2.id;

}

int main() {
	int n = 0;
	cin >> n;
	struct Stu arr[100];
	for (int i = 0; i < n; i++) {
		arr[i].id = i;
		cin >> arr[i].name >> arr[i].year >> arr[i].month >> arr[i].day;
	}
	sort(arr, arr + n, comp);
	for (int i = 0; i < n; i++) {
		cout << arr[i].name << endl;
	}
}
//
//struct score {
//	int id;
//	int chinese;
//	int math;
//	int english;
//	int sum;
//
//	int sum_score(int ch, int ma, int en) {
//		return ch + ma + en;
//	}
//};
//
//bool comp_sum(struct score s1, struct score s2) {
//	if (s1.sum == s2.sum) {
//		if (s1.chinese != s2.chinese)
//			return s1.chinese > s2.chinese;
//		else 
//			return s1.id < s2.id;
//	}
//	return s1.sum > s2.sum;
//}
//
//int main()
//{
//	int n = 0;
//	int i = 0;
//	int j = 0;
//	cin >> n;
//	struct score arr[300];
//	for ( i = 0; i < n; i++) {
//		arr[i].id = i+1;
//		cin >> arr[i].chinese >> arr[i].math >> arr[i].english;
//		arr[i].sum = arr[i].sum_score(arr[i].chinese, arr[i].math, arr[i].english);
//	}
//	sort(arr, arr+n, comp_sum);
//
//	for (i = 0; i < 5; i++) {
//		cout << arr[i].id << " " << arr[i].sum << endl;
//	}
//	
//	return 0;
//}

//bool comp(int n1, int n2) {
//	return n1 > n2;
//}
//
//int main()
//{
//	int arr[50];
//	int n = 0;
//	cin >> n;
//	for (int i = 0; i < n; i++) {
//		cin >> arr[i];
//	}
//	sort(arr, arr + n, comp);
//	for (int i = 0; i < 5; i++) {
//		cout << arr[i] << ' ';
//	}
//	return 0;
//}

//struct patient {
//	string name;
//	float tem;
//	int cough;
//};
//
//int main()
//{
//	int n;
//	int count = 0;
//	cin >> n;
//	for (int i = 0; i < n; i++) {
//		struct patient p;
//		cin >> p.name >> p.tem >> p.cough;
//		if (p.tem >= 37.5 && p.cough == 1) {
//			cout << p.name << endl;
//			count++;
//		}
//	}
//	cout << count << endl;
//
//	return 0;
//}

//struct Stu {
//	int score=0;
//	string name;
//};
//
//int main()
//{
//	int n = 0;
//	struct Stu ret;
//	cin >> n;
//	for (int i = 0; i < n; i++) {
//		struct Stu s;
//		cin >> s.score >> s.name;
//		if (s.score > ret.score) {
//			ret.score = s.score;
//			ret.name = s.name;
//		}
//	}
//	cout << ret.name;
//
//	return 0;
//}

//struct Stu {
//	int id;
//	int study_score;
//	int per_score;
//
//	double sum(int sc, int pc) {
//		return sc * 0.7 + pc * 0.3;
//	}
//
//	int sum_score(int sc, int pc) {
//		return sc + pc;
//	}
//};
//
//void judge(struct Stu s) {
//	if (s.sum_score(s.study_score, s.per_score) > 140 && s.sum(s.study_score,s.per_score) >= 80)
//		cout << "Excellent" << endl;
//	else
//		cout << "Not excellent" << endl;
//}
//
//int main1()
//{
//	int n = 0;
//	cin >> n;
//	for (int i = 0; i < n; i++)
//	{
//		struct Stu s;
//		cin >> s.id >> s.study_score >> s.per_score;
//		judge(s);
//	}
//	return 0;
//}
